一、设置名字邮箱
git config --global user.name "name"
git config --global user.email "email@mail.com"
二、工作区和版本库简介
工作区:电脑上看见的目录或文件
版本库:.git目录(其中有stage暂存区,git为我们创建的第一分支master,指向master的指针HEAD)
1、创建仓库并提及到版本库
git init 把这个目录变成git可以管理的仓库
git add hi.txt 添加到暂存区
git commit -m 提交到本地版本库
2、版本回退
查看修改历史,由近到远git loggitlog--pretty=oneline(横排显示)git reflog//查看版本号git reset –hard HEAD^//回退上一个版本git reset –hard HEAD^^//回退上上个版本git reset –hard HEAD~100//回退前一百个版本cat readme.txt//查看内容:
3、撤销和删除
git checkout -- file 撤销在工作区还没有存入暂存区的修改
rm test.txt 删除文件夹下文件
git commit -m "" 提交删除,文件彻底删除
git checkout -- test.txt 版本库里恢复文件,若提交了删除则恢复只有名字
提交文件步骤:文件添加进暂存区,暂存区内容提交到当前分支
三、分支操作
分支管理策略
一般在新建的dev分支上干活,分支代码稳定后发布到master主分支上
git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式
创建一个dev分支。
步骤: 修改readme.txt内容。
添加到暂存区。
切换回主分支(master)。
合并dev分支,使用命令git merge --no-ff -m "注释" dev
查看历史记录
git checkout -b dev 创建+切换分支dev
git checkout dev 切换分支
git branch dev 创建分支
git branch -d dev 删除分支
git branch 查看分支,会列出所有的分支,当前分支前面会添加一个星号
git merge dev master合并分支
git log 查看分支合并情况
创建分支,修改文章,添加到暂存区,提交到版本库
git checkout -b dev
git add hi.txt
git commit -m "提交"
2、bug分支
git stash 把当前工作现场“储藏”起来
git checkout master 切换到需要修复bug的分支
git checkout -b issue-101 创建临时分支,修复bug101,提交
git add readme.txt
git commit -m "fix bug 101"
git checkout master返回分支,合并bug修复分支,删除bug修复分支
git merge --no-ff -m "merged bug fix 101" issue-101
git branch -d issue-101
git checkout dev返回工作的分支
git status 工作区是干净的
git stash list 查看隐藏的列表
恢复隐藏内容:
git stash apply 恢复
git stash drop 删除
git stash pop 恢复并删除
git stash apply stash@{0} 多次隐藏,恢复指定stash
3、feature分支
每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支
git checkout -b feature-new
git add hi.txt
git commit -m "add feature new"
git checkout master
git merge --no-ff -m "merged feature-new" feature-new
git branch -d feature-new
git branch -D feature-new//没合并之前强行删除
四、远程仓库
1、本地pc机和gtihub建立连接
ssh-keygen -t rsa -C "email@qq.com"
GitHub创建ssh keys
ssh -T git@github.com 测试你的ssh-key
注:
1、不能使用https://github.com/yiy-curtai...,这是用的https而不是git,需要输入用户名密码
2、远程repository和我本地的repository冲突导致的,push前先将远程repository修改pull下来,git pull origin master
2、本地仓库和GitHub仓库建立连接
git remote add origin git@github.com:yiy-curtain/newTest.git
3、本地分支与GitHub仓库的分支建立连接
git branch --set-upstream dev origin/dev 本地dev与远程仓库dev建立连接
git push -u origin master 建立连接且上传
4、本地分支推送到远程仓库分支
git push origin master 仅推送提交到本地分支的
5、克隆远程仓库
git clone git@github.com:yiy-curtain/testgit2 在需要克隆库的文件夹下执行
ls
1、创建ssh key:ssh-keygen -t rsa -C "email@qq.com"
2、登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容
3、Create a new repository创建新的仓库
4、本地仓库的内容推送到GitHub仓库
5、推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:git push -u origin master
五、多人协作
从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
git remote 查看远程库信息
git remote -v显示更详细的信息,显示了可以抓取和推送的origin的地址
git push origin master(分支名)本地分支master推送到对应的远程分支上去
git push origin dev
git pull 如果push不成功,你的队友已经修改代码,需要先pull下来手动消除冲突然后再push
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发
git checkout -b dev origin/dev创建远程origin的dev分支到本地
注:
使用https的url时会出现没有权限,可以用以下命令行绕开ssl验证或者在config文件的url中添加用户名密码
git config --global http.sslVerify false
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。